# 使用 Python 3.12 官方镜像
FROM python:3.12-alpine

# 设置工作目录
WORKDIR /app

# 安装系统依赖
RUN apk add --no-cache \
    gcc \
    musl-dev \
    mariadb-connector-c-dev \
    mariadb-dev \
    && rm -rf /var/cache/apk/*

# 复制 poetry 配置文件和依赖
COPY pyproject.toml poetry.lock* ./

# 安装 poetry
RUN pip install --no-cache-dir poetry

# 配置 poetry 不使用虚拟环境
RUN poetry config virtualenvs.create false

# 安装依赖（排除开发依赖和当前项目）
RUN poetry install --without dev --no-root --no-interaction --no-ansi

# 复制源代码
COPY . .

# 创建非root用户
RUN adduser -D mythuser

# 修改文件权限
RUN chown -R mythuser:mythuser /app

# 切换到非root用户
USER mythuser

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD curl -f http://localhost:8000/health || exit 1

# 暴露端口
EXPOSE 8000

# 启动命令
CMD ["python", "run.py"]